package com.aspose.cells;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;

class zbaw {
   static void a(Cells var0, int var1, int var2, int var3, int var4, AutoFitterOptions var5) throws Exception {
      if (var2 - var1 > 2) {
         var0.d = new zkt(var0, 16383);
         var0.c = new zkx(var0, 16383);

         try {
            b(var0, var1, var2, var3, var4, var5);
         } finally {
            var0.m();
            var0.l();
         }
      } else {
         b(var0, var1, var2, var3, var4, var5);
      }

   }

   static int a(Cell var0, Style var1, ArrayList var2, int var3, int var4) throws Exception {
      zan.a(var2, var0.d.r().n(), com.aspose.cells.a.d.zbw.a);
      Iterator var5 = var2.iterator();

      zot var6;
      while(var5.hasNext()) {
         var6 = (zot)var5.next();
         var6.b.setName(com.aspose.cells.a.d.zfs.b(var6.b.getName()));
      }

      int var11 = 0;
      if (var2 != null && var2.size() > 0) {
         var6 = (zot)var2.get(0);
         Font var7 = var6.b;
         if (var7 != null) {
            var11 = zamb.a(var7.getName(), (float)var7.getSize(), var7.m());
         }
      }

      zga var12 = new zga(var0.getRow(), var0.getColumn());
      var12.a(var0);
      var12.a(var1);
      zge var13 = new zge(var2, var12, (float)var3, 600.0F, false);
      int var8 = (int)((double)(var13.f * (float)var4 / 72.0F) + 0.5D);
      if (var1.getRotationAngle() != 0) {
         int var9 = (int)((double)(var13.e * (float)var4 / 72.0F) + 0.5D) + 4 * var11 + 1;
         int var10 = Math.abs(var1.getRotationAngle());
         if (var10 == 90) {
            return var9;
         } else {
            return var1.getRotationAngle() == 255 ? var8 : (int)((double)var9 * Math.sin(3.141592653589793D * (double)var10 / 180.0D) + (double)var8 * Math.cos(3.141592653589793D * (double)var10 / 180.0D) + 6.5D);
         }
      } else {
         return var8;
      }
   }

   private static boolean a(Cells var0, int var1, int var2, CellArea[] var3) {
      for(int var4 = 0; var4 < var0.q().getCount(); ++var4) {
         CellArea var5 = var0.q().a(var4);
         if (var5.StartRow <= var1 && var5.EndRow >= var1 && var5.StartColumn <= var2 && var5.EndColumn >= var2) {
            var3[0] = var5;
            return true;
         }
      }

      var3[0] = new CellArea();
      return false;
   }

   private static Object a(Cells var0, HashMap var1, int var2, int var3) {
      Object var4 = var1.get(var2);
      if (var4 == null) {
         return null;
      } else {
         zakl var5 = (zakl)var4;

         for(int var6 = 0; var6 < var5.a(); ++var6) {
            CellArea var7 = var0.q().a(var5.b(var6));
            if (var7.StartColumn <= var3 && var7.EndColumn >= var3) {
               return var7;
            }
         }

         return null;
      }
   }

   private static HashMap a(Cells var0, int var1, int var2, int var3, int var4) {
      HashMap var5 = new HashMap();

      for(int var6 = 0; var6 < var0.q().getCount(); ++var6) {
         CellArea var7 = var0.q().a(var6);
         if (var7.StartRow <= var2 && var7.EndRow >= var1) {
            for(int var8 = var7.StartRow; var8 <= var7.EndRow; ++var8) {
               if (var8 >= var1) {
                  if (var8 > var2) {
                     break;
                  }

                  Object var9 = var5.get(var8);
                  if (var9 == null) {
                     var9 = new zakl(4);
                     var5.put(var8, var9);
                  }

                  ((zakl)var9).a(var6);
               }
            }
         }
      }

      return var5;
   }

   private static int a(int[] var0, int var1, int var2, int var3, int var4, int var5, AutoFitterOptions var6) {
      int var7 = var2 - var4;
      if (var6.a) {
         if (var7 >= 0 && var7 < var0.length) {
            var0[var7] = var3;
         } else if (var3 > var1) {
            var1 = var3;
         }
      } else if (var7 >= 0) {
         if (var7 < var0.length) {
            var0[var7] = var3;
         } else if (var2 <= var5 && var3 > var1) {
            var1 = var3;
         }
      }

      return var1;
   }

   private static void b(Cells var0, int var1, int var2, int var3, int var4, AutoFitterOptions var5) throws Exception {
      int var6 = var0.r().J() + var0.r().I() + 2;
      float var7 = 1440.0F / (float)var0.r().L();
      Style var8 = var0.r().D();
      HashMap var9 = new HashMap();
      int var10 = zatm.a(var0.r().G());
      var9.put(-1, var10);
      var9.put(15, var10);
      int var11 = zatm.a("   ", var0.r().G(), 1.0D);
      RowCollection var12 = var0.getRows();
      Worksheet var13 = var0.h();
      CellArea var14 = new CellArea();
      boolean var15 = false;
      if (var13.hasAutofilter()) {
         var15 = true;
         var14 = var13.getAutoFilter().h();
      }

      HashMap var16 = null;
      if (var0.q().getCount() > 1024) {
         var16 = a(var0, var1, var2, var3, var4);
      }

      int var17 = var0.b((short)0);
      int[] var18 = null;
      int var19 = 0;
      int var20 = 0;
      int var21 = 16384;
      if (var0.getColumns().a() != null && var0.getColumns().a().e()) {
         Column var22 = var0.getColumns().a();
         var21 = var22.getIndex();
         var20 = var10;
         if (var22.e()) {
            var20 = zatm.a(var22.f().getFont());
         }

         if (var22.getIndex() == 0) {
            var10 = var20;
         }
      } else {
         var19 = var10;
      }

      if (var5.a) {
         if (var0.getColumns().a() != null && var0.getColumns().a().e()) {
            if (var0.getColumns().getCount() > 0) {
               if (var0.getColumns().getColumnByIndex(0).getIndex() == 0 && var0.getColumns().getColumnByIndex(var0.getColumns().getCount() - 1).getIndex() + 1 == var21) {
                  var19 = var20;
               } else {
                  var19 = var20 > var10 ? var20 : var10;
               }
            }
         } else {
            var19 = var10;
         }

         var18 = new int[var17 + 1];
         if (var21 < var18.length) {
            com.aspose.cells.a.c.zc.a((int[])var18, 0, var21, (int)var10);
            com.aspose.cells.a.c.zc.a(var18, var21, var18.length, var20);
         } else {
            com.aspose.cells.a.c.zc.a((int[])var18, 0, var18.length, (int)var10);
         }

         Column var23;
         int var24;
         for(Iterator var59 = var0.getColumns().iterator(); var59.hasNext(); var19 = a(var18, var19, var23.getIndex(), var24, var3, var4, var5)) {
            var23 = (Column)var59.next();
            var24 = var23.getIndex() >= var21 ? var20 : var10;
            if (var23.e()) {
               var24 = zatm.a(var23.f().getFont());
            }
         }
      }

      int[] var60 = null;
      if (var5.a) {
         var60 = new int[var18.length];
      }

      int[] var61 = null;
      zxu var62 = new zxu();
      zahr var25 = var12.a.a(var1, var2, false);
      zp var27 = null;
      zbbj var29 = new zbbj();
      int var31 = -1;
      int var34 = 0;
      zfv var35 = new zfv();
      zfv var36 = var35;
      zfv var38 = new zfv();
      zfv var39 = var38;
      Style var40 = null;
      int var41 = 0;
      int var42 = -1;
      boolean var43 = true;
      int var45 = var0.h().getWorkbook().k() ? 16384 : 256;
      int var46 = zbvx.i(var0.r().D()) & 255;
      int var47 = var46 >> 2;

      while(true) {
         zp var26;
         zbbj var30;
         int var48;
         do {
            do {
               if (!var25.hasNext()) {
                  if ((var47 & 2) == 0 && (var46 & 8) != 0 && var31 > -1 && var31 < (var0.h().getWorkbook().k() ? 1048575 : '\uffff')) {
                     var27.a(1, zbbj.f(var27.l(1), true));
                     var48 = (int)((double)((float)((int)((double)((float)var27.j() / var7) + 0.5D) + 1) * var7) + 0.5D);
                     if ((double)var48 > var5.getMaxRowHeight() * 20.0D) {
                        var48 = (int)(var5.getMaxRowHeight() * 20.0D);
                     }

                     var27.m(var48);
                  }

                  return;
               }

               var26 = var25.e();
               var30 = var26.a(var29, 15);
               if (var30.a != var31 + 1) {
                  var31 = var30.a;
                  var27 = null;
                  if (var46 != 0) {
                     if (var26.a() == var45) {
                        var47 = 0;
                     } else {
                        var47 = var46 & 12;
                        if ((var46 & 4) == 0 && var31 > 0 && (var46 & 1) != 0) {
                           var47 |= 12;
                        }
                     }
                  } else {
                     var47 = 0;
                  }
               } else {
                  ++var31;
                  var47 <<= 2;
               }
            } while(var30.b() && (var5.getIgnoreHidden() || var15 && var31 >= var14.StartRow && var31 <= var14.EndRow));
         } while(var5.getOnlyAuto() && !var30.c());

         if (var16 != null) {
            var16.remove(var31 - 1);
         }

         var48 = var19;
         int var33 = var30.d() ? var30.d : 15;
         Style var37;
         if (var33 != 15) {
            var37 = var0.r().g(var33);
            if (var9.get(var33) != null) {
               var48 = (Integer)var9.get(var33);
            } else {
               var48 = zatm.a(var37.getFont());
               if (!var37.isTextWrapped()) {
                  var9.put(var33, var48);
               }
            }

            var47 = a(var37, var47);
            var61 = null;
         } else if (var5.a) {
            var61 = var60;
            System.arraycopy(var18, 0, var60, 0, var60.length);
         }

         int var49 = 0;
         zahl var28 = var26.b(var3, var4, false);
         if (var28 != null) {
            boolean var44 = true;
            var37 = null;

            label445:
            while(true) {
               while(true) {
                  if (var44) {
                     var34 = var28.a();
                     if (var34 < 0) {
                        if (var61 != null && var5.a) {
                           var61[var36.a] = var49;
                        }
                        break label445;
                     }

                     var36 = var26.a(var34, var35, 7);
                  }

                  short var32 = var36.a;
                  CellArea var50 = null;
                  boolean var51 = false;
                  if (var16 == null) {
                     CellArea[] var52 = new CellArea[]{var50};
                     var51 = a(var0, var31, var32, var52);
                     var50 = var52[0];
                  } else {
                     Object var66 = a(var0, var16, var31, var32);
                     if (var66 != null) {
                        var50 = (CellArea)var66;
                        var51 = true;
                     } else {
                        var50 = new CellArea();
                     }
                  }

                  if (var51 && (var50.StartRow != var50.EndRow && !var5.getAutoFitMergedCells() || var31 != var50.StartRow || var32 != var50.StartColumn)) {
                     var44 = true;
                  } else {
                     if (var44) {
                        var42 = Cell.a(var0, var33, var36);
                        var37 = var0.r().g(var42);
                        var47 = a(var37, var47);
                     } else {
                        var44 = true;
                     }

                     if ((var37.isTextWrapped() || var37.getRotationAngle() != 0) && var36.g() == 5 && !var36.b()) {
                        int var70 = var0.c((int)var32);
                        if (var51) {
                           var70 += var0.c.b(var32 + 1, var50.EndColumn);
                        }

                        int var53;
                        if (var37.getHorizontalAlignment() == 2) {
                           int var63 = var32 + 1;

                           Style var54;
                           int var64;
                           while(true) {
                              var41 = var28.a();
                              if (var41 < 0) {
                                 break;
                              }

                              var39 = var26.a(var41, var38, 7);
                              if (var39.a > var63) {
                                 for(var53 = var63; var63 < var39.a; ++var63) {
                                    var54 = var0.r().g(Cell.a(var0, var33, var63));
                                    var47 = a(var54, var47);
                                    if (var54.getHorizontalAlignment() != 2) {
                                       break;
                                    }
                                 }

                                 if (var63 < var39.a) {
                                    if (var63 > var53) {
                                       var70 += var0.c.b(var53, var63 - 1);
                                    }

                                    var64 = Cell.a(var0, var33, var39);
                                    var40 = var0.r().g(var64);
                                    var47 = a(var40, var47);
                                    var44 = false;
                                    break;
                                 }

                                 var70 += var0.c.b(var53, var63 - 1);
                              }

                              var64 = Cell.a(var0, var33, var39);
                              var40 = var0.r().g(var64);
                              var47 = a(var40, var47);
                              if (var39.c != 0 || var40.getHorizontalAlignment() != 2) {
                                 var44 = false;
                                 break;
                              }

                              var70 += var0.c.a(var39.a);
                              var63 = var39.a + 1;
                           }

                           if (var44) {
                              if (var63 <= var4) {
                                 for(var53 = var63; var63 <= var4; ++var63) {
                                    var54 = var0.r().g(Cell.a(var0, var33, var63));
                                    var47 = a(var54, var47);
                                    if (var54.getHorizontalAlignment() != 2) {
                                       break;
                                    }
                                 }

                                 var70 += var0.c.b(var53, var63 - 1);
                              }

                              if (var63 > var4) {
                                 zahl var72 = var26.b(var4 + 1, -1, false);
                                 var41 = -1;
                                 if (var72 != null) {
                                    while(true) {
                                       var41 = var72.a();
                                       if (var41 < 0) {
                                          break;
                                       }

                                       var39 = var26.a(var41, var38, 7);
                                       if (var39.a > var63) {
                                          for(var53 = var63; var63 < var39.a; ++var63) {
                                             Style var55 = var0.r().g(Cell.a(var0, var33, var63));
                                             var47 = a(var55, var47);
                                             if (var55.getHorizontalAlignment() != 2) {
                                                break;
                                             }
                                          }

                                          if (var63 < var39.a) {
                                             if (var63 > var53) {
                                                var70 += var0.c.b(var53, var63 - 1);
                                             }
                                             break;
                                          }

                                          var70 += var0.c.b(var53, var63 - 1);
                                       }

                                       var64 = Cell.a(var0, var33, var39);
                                       var40 = var0.r().g(var64);
                                       var47 = a(var40, var47);
                                       if (var39.c != 0 || var40.getHorizontalAlignment() != 2) {
                                          break;
                                       }

                                       var70 += var0.c.a(var39.a);
                                       var63 = var39.a + 1;
                                    }
                                 }

                                 if (var41 < 0) {
                                    boolean var73 = false;
                                    int var56;
                                    if (var33 != 15) {
                                       if (var0.r().g(var33).getHorizontalAlignment() == 2) {
                                          var73 = true;
                                       }
                                    } else {
                                       var56 = var0.getColumns().getCount();
                                       var73 = var0.r().D().getHorizontalAlignment() == 2;
                                       if (var56 > 0) {
                                          var41 = var0.getColumns().e(var63);
                                          if (var41 < 0) {
                                             var41 = -var41 - 1;
                                          }

                                          for(; var41 < var56; ++var41) {
                                             Column var57 = var0.getColumns().getColumnByIndex(var41);
                                             if (var57.getIndex() > var63) {
                                                if (!var73) {
                                                   break;
                                                }

                                                var70 += var0.c.b(var63, var57.getIndex() - 1);
                                             }

                                             Style var58 = var0.r().g(var57.c());
                                             var47 = a(var58, var47);
                                             if (var58.getHorizontalAlignment() != 2) {
                                                var73 = false;
                                                break;
                                             }

                                             if (!var57.isHidden()) {
                                                var70 += var57.a();
                                             }
                                          }
                                       }
                                    }

                                    if (var73) {
                                       var56 = var0.c.b(var63, 16383);
                                       if (var56 < 0) {
                                          var70 = Integer.MAX_VALUE;
                                       } else {
                                          var70 += var56;
                                       }
                                    }
                                 }
                              }
                           }
                        }

                        if (var37.getIndentLevel() != 0) {
                           var53 = var11 * var37.getIndentLevel();
                           if (var70 > var53) {
                              var70 -= var53;
                           }
                        }

                        Cell var71 = new Cell(var25.f(), var34, var36, var36 == var35);
                        var62.a(new zhe(var0, var71.getRow(), var36.a, var37, var42 == 15));
                        var49 = a(var71, var37, var71.a(var62, var37), var70, var0.r().L());
                        if (!var44) {
                           var36 = var39;
                           var39 = var35;
                           var35 = var38;
                           var38 = var39;
                           var34 = var41;
                           var37 = var40;
                        }
                     } else if (var9.get(var42) != null) {
                        var49 = (Integer)var9.get(var42);
                     } else {
                        Cell var69 = new Cell(var25.f(), var34, var36, var36 == var35);
                        var49 = a(var69, var37, var69.J(), Integer.MAX_VALUE, var0.r().L());
                        var9.put(var42, var49);
                     }

                     if (var49 > var48) {
                        var48 = var49;
                     }
                  }
               }
            }
         }

         if (var61 != null && var5.a) {
            for(int var65 = 0; var65 < var61.length; ++var65) {
               if (var61[var65] > var48) {
                  var48 = var61[var65];
               }
            }
         }

         int var67;
         byte var68;
         if ((var47 & 8) != 0 && var27 != null) {
            var68 = var27.l(1);
            if (!zbbj.h(var68)) {
               var27.a(1, zbbj.f(var68, true));
               var67 = (int)((double)((float)((int)((double)((float)var27.j() / var7) + 0.5D) + 1) * var7) + 0.5D);
               if ((double)var67 > var5.getMaxRowHeight() * 20.0D) {
                  var67 = (int)(var5.getMaxRowHeight() * 20.0D);
               }

               var27.m(var67);
               var26.f();
            }
         }

         var68 = zbbj.g(var26.l(1));
         if ((var47 & 4) != 0) {
            var68 = zbbj.e(var68, true);
            ++var48;
         }

         if ((var47 & 2) != 0) {
            var68 = zbbj.f(var68, true);
            ++var48;
         }

         var26.a(1, var68);
         var67 = (int)((double)((float)var48 * var7) + 0.5D);
         if ((double)var67 > var5.getMaxRowHeight() * 20.0D) {
            var67 = (int)(var5.getMaxRowHeight() * 20.0D);
         }

         var26.m(var67);
         Row.b(var26, var5.a && !var5.getAutoFitMergedCells());
         var27 = var26;
      }
   }

   private static int a(Style var0, int var1) {
      if ((var1 & 15) != 15 && var0.d() != null) {
         BorderCollection var2 = var0.getBorders();
         int var3;
         if ((var1 & 8) == 0) {
            var3 = var2.getByBorderType(4).getLineStyle();
            if (zbbj.a(var3)) {
               var1 |= 12;
            } else if (zbbj.b(var3)) {
               var1 |= 8;
            }
         } else if ((var1 & 4) == 0 && zbbj.a(var2.getByBorderType(4).getLineStyle())) {
            var1 |= 4;
         }

         if ((var1 & 2) == 0) {
            var3 = var2.getByBorderType(8).getLineStyle();
            if (zbbj.a(var3)) {
               var1 |= 3;
            } else if (zbbj.b(var3)) {
               var1 |= 2;
            }
         } else if ((var1 & 1) == 0 && zbbj.a(var2.getByBorderType(8).getLineStyle())) {
            var1 |= 1;
         }

         return var1;
      } else {
         return var1;
      }
   }
}
